AppFlowでGoogle AnalyticsからS3への連携を試してみた
先日リリースされたAppFlowで、Google AnalyticsからS3への連携を試してみました。
事前準備
まずは事前準備としてAppFlowがGCPのAPIにアクセスできるように設定する必要があります。
GCPで専用のプロジェクトを作り、そのプロジェクトでAnalytics APIとAnalytics Report APIを有効化します。
APIの有効化が完了したら、OAuth同意画面での設定を行います。 APIタイプは内部を選択します。
Google Analyticsのreadonly権限をスコープに追加します。
承認済みのドメインにはamazon.com
を設定します。
OAuth同意画面での設定が完了したら、次はOAuthクライアントIDを作成します。
アプリケーションの種類はウェブアプリケーションを選択します。
制限事項の承認済みのJavaScript生成元には、https://console.aws.amazon.com
を設定します。
承認済みのリダイレクトURIにはhttps://ap-northeast-1.console.aws.amazon.com/appflow/oauth
を設定します。
※東京リージョン以外のAppFlowを利用する場合は、ap-northeast-1
の部分を対象リージョン名に変更する必要があります。
作成が完了すると、次のようにクライアントIDとクライアントシークレットが表示されます。AppFlowでコネクションを作成する際に利用するため、コピーして控えておきます。
これで、GCPでの事前準備は完了です。ここからはAWSのマネジメントコンソールでの操作となります。
フローを作成
AppFlowのフローの作成に取り掛かります。
名前を設定し、説明も必要に応じて設定します。
タグやデータ暗号化も設定できますが、今回は設定せずに次に進みます。
送信元の設定
次は送信元の設定を行います。
Google Analyticsを選択し、接続を新しく作成します。
GCPでの事前準備の際に控えておいた、クライアントIDとクライアントシークレット、自由な接続名を入力します。続行すると、Googleの認証画面が開くので、認証に同意します。
認証が完了すると、オブジェクトやサブオブジェクトが選択できるようになるので、連携したい対象を選択します。
送信先の設定
取得したデータを保存する先を設定します。S3バケットとパスを入力します。
フロートリガーの設定
実行タイミングを設定します。スケジュールによる定期実行も可能ですが、ここではオンデマンドでの実行を選択します。
データフィールドのマッピング
取得したいデータを設定します。フィールド名が検索&選択できるようになっているので、必要なものを選択し、マッピングします。
妥当性確認は設定せずに次に進みます。
フィルタリングの設定
ここでは取得するデータをどうフィルタリングするかを設定できます。今のところ設定可能な項目はDate Rangeのみです。
フィルタリング情報を設定し、次に進めると確認画面になります。確認画面で内容が正しいか確認したのち、フローの作成を実行します。
フローの実行
フローの作成が完了すると、フローの詳細画面に自動的に移動します。
右上のフローを実行
からフローを実行します。
実行時間は処理するデータ量に依存します。
フローが完了したら、S3にデータが保存されています。
中身は次のようなJSON形式になっています。
{ "reports": [ { "columnHeader": { "dimensions": [ "ga:pagePath", "ga:date" ], "metricHeader": { "metricHeaderEntries": [ { "name": "ga:visits", "type": "INTEGER" } ] } }, "data": { "rows": [ { "dimensions": [ "/", "20200422" ], "metrics": [ { "values": [ "123456789" ] } ] }, ... ], "totals": [ { "values": [ "123456789" ] } ], "rowCount": 123456789, "minimums": [ { "values": [ "123456789" ] } ], "maximums": [ { "values": [ "123456789" ] } ] } } ] }
さいごに
AppFlowを用いた、Google AnalyticsからS3へのデータ連携を試してみました。画面をポチポチするだけで簡単にできました。Google AnalyticsのデータをAWSで分析やシステム連携等に利用する際には非常に便利そうです。